草庐IT

Android JSONObject 与 GSON

全部标签

java - gson 的多态性

我在使用Gson反序列化json字符串时遇到问题。我收到一系列命令。该命令可以是start、stop或其他类型的命令。自然我有多态性,启动/停止命令继承自命令。如何使用gson将其序列化回正确的命令对象?似乎我只得到基本类型,即声明的类型,而不是运行时类型。 最佳答案 这有点晚了,但我今天必须做同样的事情。所以,根据我的研究,在使用gson-2.0时,你真的不想使用registerTypeHierarchyAdapter方法,而是更普通的registerTypeAdapter。而且您当然不需要为派生类做instanceofs或编写适

java - 使用 Gson 将 JSON 数组解析为 java.util.List

我有一个名为"mapping"的JsonObject,内容如下:{"client":"127.0.0.1","servers":["8.8.8.8","8.8.4.4","156.154.70.1","156.154.71.1"]}我知道我可以通过以下方式获取数组"servers":mapping.get("servers").getAsJsonArray()现在我想将JsonArray解析为java.util.List...最简单的方法是什么? 最佳答案 绝对最简单的方法是使用Gson的默认解析函数fromJson().当您需要反

java - 使用改造获取带有 GSON 的嵌套 JSON 对象

我正在使用我的android应用程序中的API,所有JSON响应都是这样的:{'status':'OK','reason':'Everythingwasfine','content':{}问题是我所有的POJO都有一个status、reason字段,而content字段里面是我想要的真正POJO。有什么方法可以创建一个Gson的自定义转换器以始终提取content字段,因此改造返回适当的POJO? 最佳答案 您将编写一个返回嵌入对象的自定义反序列化器。假设您的JSON是:{"status":"OK","reason":"somere

java - 在使用 GSON 解析 JSON 时使用枚举

这与我之前在这里提出的一个问题有关JSONparsingusingGson我正在尝试解析相同的JSON,但现在我稍微改变了我的类。{"lower":20,"upper":40,"delimiter":"","scope":["${title}"]}我的类(class)现在看起来像:publicclassTruncateElement{privateintlower;privateintupper;privateStringdelimiter;privateListscope;//gettersandsetters}publicenumAttributeScope{TITLE("${ti

java - 可以将 Gson 实例用作模型 bean 中的静态字段(重用)吗?

这是我实现的模型:publicclassLoginSession{privatestaticfinalGsongson=newGson();privateStringid;privateStringname;privatelongtimestamp;publicLoginSession(Stringid,Stringname){this.id=id;this.name=name;this.timestamp=System.currentTimeMillis();}publicStringtoJson(){returngson.toJson(this);}publicstaticLogi

java - 使用 Gson for Java 解析 JSON

我想从String类型的JSON中解析数据。我正在使用GoogleGson.我有:jsonLine="{"data":{"translations":[{"translatedText":"Helloworld"}]}}";我的类(class)是:publicclassJsonParsing{publicvoidparse(StringjsonLine){//thereIwouldliketogetString"Helloworld"}} 最佳答案 这是执行此操作的简单代码,我避免了所有检查,但这是主要思想。publicString

java - GSON 抛出 "Expected BEGIN_OBJECT but was BEGIN_ARRAY"?

我正在尝试解析像这样的JSON字符串[{"updated_at":"2012-03-0221:06:01","fetched_at":"2012-03-0221:28:37.728840","description":null,"language":null,"title":"JOHN","url":"http://rus.JOHN.JOHN/rss.php","icon_url":null,"logo_url":null,"id":"4f4791da203d0c2d76000035","modified":"2012-03-0223:28:58.840076"},{"updated_

java - 如何使用 Google 的 Gson API 正确反序列化 JSON?

简而言之,这是我想用JAVA解析的JSON对象的草图:{object1:{item1://[String|Array|Object],item2://...//moreitemsobject2:{/*..*/}//moreobjects}这些是我为解析创建的POJO(为了简洁起见,我将省略import语句):(1)完整JSON对象的表示publicclassJObjectContainer{privateListjObjects;publicJObjectContainer(){}//get&setmethods}(2)嵌套对象的表示:publicclassJObject{privat

java - 如何使用 Google 的 Gson API 正确反序列化 JSON?

简而言之,这是我想用JAVA解析的JSON对象的草图:{object1:{item1://[String|Array|Object],item2://...//moreitemsobject2:{/*..*/}//moreobjects}这些是我为解析创建的POJO(为了简洁起见,我将省略import语句):(1)完整JSON对象的表示publicclassJObjectContainer{privateListjObjects;publicJObjectContainer(){}//get&setmethods}(2)嵌套对象的表示:publicclassJObject{privat

java - 包含根值的 Gson 序列化 POJO?

我在使用Gson序列化对象时遇到问题。@XmlRootElementclassFooimplementsSerializable{privateintnumber;privateStringstr;publicFoo(){number=10;str="hello";}}Gson会将其序列化为JSON{"number":10,"str":"hello"}.但是,我希望它是{"Foo":{"number":10,"str":"hello"}},所以基本上包括顶级元素。我试图用谷歌搜索一种在Gson中执行此操作的方法,但没有运气。任何人都知道是否有办法实现这一目标?谢谢!